import jmunit.framework.cldc11.TestCase;


public class MapaTest extends TestCase {

	// Constructor que permite probar la clase Mapa
	public MapaTest() {
		super(0, "MapaTest");
		// Crea un mapa
		Mapa mapa = new Mapa(crearMapa());
		// Mueve el robot
		mapa.right();
		int[][] mapa2 = crearMapa();
		// Mueve el robot en otra matriz manualmente
		mapa2[1][1] = 1;
		mapa2[1][2] = 4;
		// Se revisa si son iguales
		assertEquals(mapa.getMatriz(), mapa2);
		// Mueve el robot
		mapa.backward(1);
		// Mueve el robot en otra matriz manualmente
		mapa2[1][2] = 1;
		mapa2[2][2] = 4;
		// Se revisa si son iguales
		assertEquals(mapa.getMatriz(), mapa2);
	}
	
	// Crea un mapa
	public int[][] crearMapa()
	{
		int[][] matriz;
		int dimx, dimy;
		
		dimx=10;
		dimy=10;
		matriz= new int[dimy][dimx];
		
		for(int i=0;i<dimy;i++)
			for (int j=0;j<dimx;j++)
				matriz[i][j]=1;
		for(int i=0;i<dimx;i++)
		{
			matriz[0][i]=2;
			matriz[9][i]=2;
		}
		for(int i=0;i<dimy;i++)
		{
			matriz[i][0]=2;
			matriz[i][9]=2;
		}
		matriz[3][4]=3;
		matriz[4][2]=3;
		matriz[2][1]=3;
		matriz[5][6]=5;
		matriz[1][1]=4;
		return matriz;
	}

	/**
	 * This method stores all the test methods invocation. The developer must
	 * implement this method with a switch-case. The cases must start from 0 and
	 * increase in steps of one until the number declared as the total of tests
	 * in the constructor, exclusive. For example, if the total is 3, the cases
	 * must be 0, 1 and 2. In each case, there must be a test method invocation.
	 * 
	 * @param testNumber the test to be executed.
	 * @throws Throwable anything that the executed test can throw.
	 */
	public void test(int testNumber) throws Throwable {
		switch (testNumber) {
		}
	}

}
